package com.qixiaobao.system.service;


import com.qixiaobao.system.domain.Message;
import com.qixiaobao.system.domain.dto.MessageDTO;
import com.qixiaobao.system.domain.vo.MessageVO;

import java.util.List;

/**
 * @Description 站内信 业务层
 * @Author yangxm
 * @Date 2025/7/1 14:27
 */
public interface IMessageService {


    /**
     * @Description 送BI系统站内信
     * @Author yangxm
     * @Date 2025/7/1 16:54
     * @param message
     * @param receiverIds
     * @return int
     */
    int insertBiMessage(Message message, List<Long> receiverIds);

    /**
     * @Description 查询站内信列表
     * @Author yangxm
     * @Date 2025/7/1 16:54
     * @param messageDTO
     * @return java.util.List<com.qixiaobao.system.domain.vo.MessageVO>
     */
    List<MessageVO> selectMessageList(MessageDTO messageDTO);

    /**
     * @Description 标记为已读
     * @Author yangxm
     * @Date 2025/7/1 16:54
     * @param messageUserId
     * @return int
     */
    int markAsRead(Long messageUserId);

    /**
     * @Description 删除站内信
     * @Author yangxm
     * @Date 2025/7/1 16:54
     * @param messageUserId
     * @return int
     */
    int deleteMessageUser(Long messageUserId);

    /**
     * @Description 批量标记为已读
     * @Author yangxm
     * @Date 2025/7/1 16:54
     * @param messageDTO
     * @return int
     */
    int markAsReadAll(MessageDTO messageDTO);

    /**
     * @Description 批量删除站内信
     * @Author yangxm
     * @Date 2025/7/1 16:54
     * @param messageDTO
     * @return int
     */
    int deleteAll(MessageDTO messageDTO);
}
